home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / libol / abstract_io.h.x < prev    next >
Text File  |  2005-10-16  |  3KB  |  104 lines

  1. #ifndef CLASS_DEFINE
  2. struct abstract_read
  3. {
  4.   struct ol_object super;
  5.   int (*(read))(struct abstract_read **self, UINT32 length, UINT8 *buffer);
  6.   int (*(recv))(struct abstract_read **self, UINT32 length, UINT8 *buffer, abstract_addr *addr, size_t *addrsize);
  7. };
  8. extern struct ol_class abstract_read_class;
  9. #endif /* !CLASS_DEFINE */
  10.  
  11. #ifndef CLASS_DECLARE
  12. struct ol_class abstract_read_class =
  13. { STATIC_HEADER,
  14.   0, "abstract_read", sizeof(struct abstract_read),
  15.   NULL,
  16.   NULL
  17. };
  18. #endif /* !CLASS_DECLARE */
  19.  
  20. #ifndef CLASS_DEFINE
  21. struct read_handler
  22. {
  23.   struct ol_object super;
  24.   int (*(handler))(struct read_handler **self, struct abstract_read *read);
  25. };
  26. extern struct ol_class read_handler_class;
  27. #endif /* !CLASS_DEFINE */
  28.  
  29. #ifndef CLASS_DECLARE
  30. struct ol_class read_handler_class =
  31. { STATIC_HEADER,
  32.   0, "read_handler", sizeof(struct read_handler),
  33.   NULL,
  34.   NULL
  35. };
  36. #endif /* !CLASS_DECLARE */
  37.  
  38. #ifndef CLASS_DEFINE
  39. struct abstract_write
  40. {
  41.   struct ol_object super;
  42.   int (*(write))(struct abstract_write *self, UINT32 length, UINT8 *data);
  43.   int (*(writestr))(struct abstract_write *self, struct ol_string *str);
  44. };
  45. extern struct ol_class abstract_write_class;
  46. #endif /* !CLASS_DEFINE */
  47.  
  48. #ifndef CLASS_DECLARE
  49. struct ol_class abstract_write_class =
  50. { STATIC_HEADER,
  51.   0, "abstract_write", sizeof(struct abstract_write),
  52.   NULL,
  53.   NULL
  54. };
  55. #endif /* !CLASS_DECLARE */
  56.  
  57. #ifndef CLASS_DEFINE
  58. struct abstract_buffer
  59. {
  60.   struct abstract_write super;
  61.   int (*(writable));
  62.   int closed;
  63.   int (*(flush))(struct abstract_buffer *self, struct abstract_write *);
  64.   int (*(prepare))(struct abstract_buffer *self);
  65.   void (*(close))(struct abstract_buffer *self);
  66. };
  67. extern struct ol_class abstract_buffer_class;
  68. #endif /* !CLASS_DEFINE */
  69.  
  70. #ifndef CLASS_DECLARE
  71. struct ol_class abstract_buffer_class =
  72. { STATIC_HEADER,
  73.   &abstract_write_class, "abstract_buffer", sizeof(struct abstract_buffer),
  74.   NULL,
  75.   NULL
  76. };
  77. #endif /* !CLASS_DECLARE */
  78.  
  79. #ifndef CLASS_DEFINE
  80. struct abstract_write_pipe
  81. {
  82.   struct abstract_write super;
  83.   struct abstract_write *next;
  84. };
  85. extern struct ol_class abstract_write_pipe_class;
  86. #endif /* !CLASS_DEFINE */
  87.  
  88. #ifndef CLASS_DECLARE
  89. static void do_abstract_write_pipe_mark(struct ol_object *o, 
  90. void (*mark)(struct ol_object *o))
  91. {
  92.   struct abstract_write_pipe *i = (struct abstract_write_pipe *) o;
  93.   mark((struct ol_object *) i->next);
  94. }
  95.  
  96. struct ol_class abstract_write_pipe_class =
  97. { STATIC_HEADER,
  98.   &abstract_write_class, "abstract_write_pipe", sizeof(struct abstract_write_pipe),
  99.   do_abstract_write_pipe_mark,
  100.   NULL
  101. };
  102. #endif /* !CLASS_DECLARE */
  103.  
  104.